package com.qf.service.impl;

import com.qf.dao.GoodDao;
import com.qf.dao.GoodTypeDao;
import com.qf.dao.impl.GoodDaoImpl;
import com.qf.dao.impl.GoodTypeDaoImpl;
import com.qf.entity.Good;
import com.qf.entity.GoodType;
import com.qf.entity.Page;
import com.qf.service.GoodService;
import com.qf.util.DbUtils;

import java.sql.SQLException;
import java.util.List;

/**
 * @Author AzureSky_X
 * @Date 2020/11/17 21:19
 * @Version 1.0
 */
public class GoodServiceImpl implements GoodService {
    private GoodDao dao=new GoodDaoImpl();
    private GoodTypeDao goodTypeDao=new GoodTypeDaoImpl();

    @Override
    public List<Good> getGoodsListByTypeId(Integer typeId, Page page) {
        List<Good> list=null;
        try {
            DbUtils.begin();
            //计算总记录数应该是当前分类下的总记录数，而不是全部的数据

            page.setTotalCounts(dao.selectCountByTypeId(typeId));
            list=dao.selectLimitGoodsByTypeId(typeId,page);
            DbUtils.commit();
        } catch (SQLException e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return list;
    }

    @Override
    public Good showGoodDetail(int id) {
        Good good=null;
        try {
            DbUtils.begin();
            good=dao.selectGoodById(id);
            //此时你拿到的good中的商品分类对象是null的
            //所以此时我们需要根据查询得到的对象的type去goodType表中将goodType对象查询出来
            GoodType goodType=goodTypeDao.selectGoodTypeById(good.getTypeId());
            good.setGoodType(goodType);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return good;
    }
}
